import api from '../../api/index'
import common from "../../common/index";
import envConfig from '../../env'
const app = getApp()
Page({
  data: {
    hasUserInfo: false,
    statusBarHeight: app.globalData.statusBarHeight,
    navBarHeight: app.globalData.navBarHeight,
    pcenterPageShow: false,
    summaryPageShow: false,
    uid: '',
    invitationCode: '',
  },
  
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad() {
    const user = common.getAppUserInfo()
    this.data.uid = user.uid
    this.setData({
      uid: user.uid
    })
    // 获取邀请码
    this.getInvitationCode()
  },
  
  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
    // 页面显示时，如果还没有邀请码，再次尝试获取
    if (!this.data.invitationCode) {
      this.getInvitationCode()
    }
  },
  
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {
    
  },
  
  showPcenterPage() {
    this.setData({
      pcenterPageShow: true
    })
  },
  
  closePcenterPage() {
    this.setData({
      pcenterPageShow: false
    })
  },
  
  // 获取邀请码
  async getInvitationCode() {
    try {
      const res = await api.getInvitationCode()
      console.log('获取邀请码响应:', res)
      if (res.code === 0 && res.data && res.data.invitationCode) {
        this.setData({
          invitationCode: res.data.invitationCode
        })
        console.log('邀请码设置成功:', res.data.invitationCode)
      } else {
        console.warn('邀请码响应数据异常:', res)
        const errorMsg = res.msg || '获取邀请码失败'
        wx.showToast({
          title: errorMsg,
          icon: 'none',
          duration: 3000
        })
      }
    } catch (error: any) {
      console.error('获取邀请码失败:', error)
      // 显示详细错误信息
      let errorMsg = '获取邀请码失败'
      if (error && error.msg) {
        errorMsg = error.msg
      } else if (error && error.errMsg) {
        errorMsg = error.errMsg
      }
      
      // 如果是域名未配置错误，显示更详细的提示
      if (errorMsg.includes('域名不在以下 request 合法域名列表中') || errorMsg.includes('请求域名未配置')) {
        wx.showModal({
          title: '请求失败',
          content: '请求域名未配置。请在小程序后台配置以下域名：\nhttps://www.aispire.info\nhttps://test.aispire.info\n\n配置路径：小程序后台 -> 开发 -> 开发管理 -> 开发设置 -> 服务器域名 -> request合法域名',
          showCancel: false,
          confirmText: '知道了'
        })
      } else {
        wx.showToast({
          title: errorMsg,
          icon: 'none',
          duration: 3000
        })
      }
    }
  },
  
  // 复制邀请链接
  handleCopyInvitationLink() {
    if (!this.data.invitationCode) {
      wx.showToast({
        title: '邀请码未获取，请稍后再试',
        icon: 'none'
      })
      return
    }
    
    const invitationText = `您可以在浏览器上通过网址：https://www.aispire.info 访问AIspire辅助科研工具。您的邀请码为：${this.data.invitationCode}，您通过该邀请码注册，可以获得15天Pro会员，您通过该邀请码购买AIspire任意会员，可享受一次8折优惠，有效期7天。`
    
    wx.setClipboardData({
      data: invitationText,
      success: () => {
        wx.showModal({
          title: '提示',
          content: '已复制到剪切板，可以复制给你的朋友啦',
          showCancel: false,
          confirmText: '知道了'
        })
      },
      fail: () => {
        wx.showToast({
          title: '复制失败',
          icon: 'none'
        })
      }
    })
  },
  
  // 返回上一页
  handleGoBack() {
    wx.navigateBack()
  },
  
  // 复制网页链接
  handleCopyWebLink() {
    const webUrl = 'www.aispire.info'
    wx.setClipboardData({
      data: webUrl,
      success: () => {
        wx.showToast({
          title: '链接已复制！',
          icon: 'success',
          duration: 2000
        })
      },
      fail: () => {
        wx.showToast({
          title: '复制失败',
          icon: 'error',
          duration: 2000
        })
      }
    })
  }
})
